chore: rebrand project from Revanios to Neta and update associated assets and configurations
@@ -11,4 +11,4 @@ SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
|
||||
# GEMINI_API_KEY=your_gemini_api_key
|
||||
|
||||
# ─── Supabase Auth (Self-host'ta gerekli olabilir) ───────────
|
||||
# NEXT_PUBLIC_SITE_URL=https://cognis.example.com
|
||||
# NEXT_PUBLIC_SITE_URL=https://neta.example.com
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<img src="public/logo/lightLogo.png" height="200" alt="Revanios Icon" />
|
||||
<img src="public/logo/lightLogoLong.png" height="200" alt="Neta Icon" />
|
||||
|
||||
# Revanios - Freelancer Operating System
|
||||
# Neta - Freelancer Operating System
|
||||
|
||||
[](https://nextjs.org/)
|
||||
[](https://react.dev/)
|
||||
@@ -11,9 +11,9 @@
|
||||
|
||||
## Overview
|
||||
|
||||
Revanios is a comprehensive, self-hosted workspace designed specifically for freelancers. It serves as a centralized operating system to manage daily operations, clients, projects, finances, and personal performance tracking.
|
||||
Neta is a comprehensive, self-hosted workspace designed specifically for freelancers. It serves as a centralized operating system to manage daily operations, clients, projects, finances, and personal performance tracking.
|
||||
|
||||
Built with a focus on simplicity, security, and edge-to-edge aesthetic design, Revanios allows a single user (the freelancer) to operate their entire business from one dashboard without relying on multiple third-party SaaS subscriptions.
|
||||
Built with a focus on simplicity, security, and edge-to-edge aesthetic design, Neta allows a single user (the freelancer) to operate their entire business from one dashboard without relying on multiple third-party SaaS subscriptions.
|
||||
|
||||
## Features and Modules
|
||||
|
||||
@@ -40,7 +40,7 @@ A restricted, read-only interface that you can share with your clients. They can
|
||||
|
||||
## Technical Architecture
|
||||
|
||||
Revanios is engineered using modern, high-performance web technologies:
|
||||
Neta is engineered using modern, high-performance web technologies:
|
||||
|
||||
- **Frontend:** Next.js (App Router) combined with React Server Components.
|
||||
- **Styling:** Tailwind CSS with a custom, bespoke design system via Poyraz UI.
|
||||
@@ -50,7 +50,7 @@ Revanios is engineered using modern, high-performance web technologies:
|
||||
|
||||
## Installation and Deployment
|
||||
|
||||
Revanios is designed to be easily self-hosted. Follow these steps to deploy the application on your own infrastructure.
|
||||
Neta is designed to be easily self-hosted. Follow these steps to deploy the application on your own infrastructure.
|
||||
|
||||
### Prerequisites
|
||||
- Docker and Docker Compose
|
||||
@@ -70,7 +70,7 @@ docker-compose up -d --build
|
||||
```
|
||||
|
||||
### First Administrator Account
|
||||
To ensure data security, Revanios is locked to a single administrator. Upon launching the application for the first time, navigate to the `/register` route to create the initial admin account. Once this account is created, public registration is permanently disabled.
|
||||
To ensure data security, Neta is locked to a single administrator. Upon launching the application for the first time, navigate to the `/register` route to create the initial admin account. Once this account is created, public registration is permanently disabled.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { AnalyticsClient } from "./analytics-client";
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
export const metadata = {
|
||||
title: "Analizler - Revanios",
|
||||
title: "Analizler - Neta",
|
||||
};
|
||||
|
||||
export default async function AnalyticsPage() {
|
||||
|
||||
@@ -33,7 +33,7 @@ const documents = [
|
||||
date: "May 08, 2026",
|
||||
category: "Design",
|
||||
starred: false,
|
||||
summary: "Core design tokens, typography, and color palette for the Revanios rebrand.",
|
||||
summary: "Core design tokens, typography, and color palette for the Neta rebrand.",
|
||||
owner: "Alex R.",
|
||||
tags: ["Design", "UI", "Branding"],
|
||||
aiAnalysis: "Identifies 'Cyber-Lavender' as the primary action color. Typography is set to Geist Sans."
|
||||
|
||||
@@ -28,7 +28,7 @@ const goals = [
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "Launch Revanios AI Mobile App",
|
||||
title: "Launch Neta AI Mobile App",
|
||||
category: "Product",
|
||||
progress: 85,
|
||||
deadline: "May 25, 2026",
|
||||
@@ -238,7 +238,7 @@ export default function GoalsPage() {
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="p-2 bg-blue-500/10 rounded-sm"><Briefcase className="h-4 w-4 text-blue-400" /></div>
|
||||
<div>
|
||||
<div className="text-xs font-bold">Project: Revanios App</div>
|
||||
<div className="text-xs font-bold">Project: Neta App</div>
|
||||
<div className="text-[9px] text-muted-foreground uppercase mt-1">Core Requirement</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@ export default async function DashboardLayout({
|
||||
redirect("/portal");
|
||||
}
|
||||
|
||||
const fallbackName = user?.email?.split("@")[0] ?? "Revanios Kullanıcısı";
|
||||
const fallbackName = user?.email?.split("@")[0] ?? "Neta Kullanıcısı";
|
||||
const displayName =
|
||||
[profile?.first_name, profile?.last_name].filter(Boolean).join(" ") ||
|
||||
fallbackName;
|
||||
|
||||
@@ -3,7 +3,7 @@ import { DashboardClient } from "./dashboard-client";
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
export const metadata = {
|
||||
title: "Dashboard - Revanios",
|
||||
title: "Dashboard - Neta",
|
||||
};
|
||||
|
||||
export default async function DashboardPage() {
|
||||
|
||||
@@ -44,7 +44,7 @@ export async function POST(request: Request) {
|
||||
|
||||
const result = streamText({
|
||||
model,
|
||||
system: `Sen Revanios içindeki kişisel Freelancer OS asistanısın.
|
||||
system: `Sen Neta içindeki kişisel Freelancer OS asistanısın.
|
||||
Kullanıcının kayıtlı verileri hakkında kısa, net ve Türkçe cevap ver.
|
||||
Veri yoksa bunu açıkça söyle. Klinik, finansal veya hukuki kesin hüküm verme.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
@@ -8,13 +8,13 @@ import { OfflineIndicator } from "@/components/ui/offline-indicator";
|
||||
const geist = Geist({ subsets: ["latin"], variable: "--font-sans" });
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Revanios",
|
||||
title: "Neta",
|
||||
description: "Self-hosted freelancer operating dashboard",
|
||||
manifest: "/manifest.json",
|
||||
appleWebApp: {
|
||||
capable: true,
|
||||
statusBarStyle: "default",
|
||||
title: "Revanios",
|
||||
title: "Neta",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ export default async function LoginPage({
|
||||
{error && message && <ErrorToaster message={String(message)} />}
|
||||
<AuthPageShell
|
||||
title="Giriş yap"
|
||||
description="Revanios çalışma alanına erişmek için hesabına giriş yap."
|
||||
description="Neta çalışma alanına erişmek için hesabına giriş yap."
|
||||
form={
|
||||
<form className="space-y-6">
|
||||
<div className="space-y-4">
|
||||
|
||||
@@ -36,7 +36,7 @@ export default async function RegisterPage({
|
||||
{error && message && <ErrorToaster message={String(message)} />}
|
||||
<AuthPageShell
|
||||
title="İlk admin hesabını oluştur"
|
||||
description="Bu self-host kurulumu için Revanios çalışma alanının ilk yönetici hesabını oluştur."
|
||||
description="Bu self-host kurulumu için Neta çalışma alanının ilk yönetici hesabını oluştur."
|
||||
form={
|
||||
<form className="space-y-6">
|
||||
<div className="space-y-4">
|
||||
|
||||
@@ -64,8 +64,8 @@ export function AuthPageShell({
|
||||
<div className="absolute inset-0 opacity-20 bg-[linear-gradient(rgba(255,255,255,.18)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,.18)_1px,transparent_1px)] bg-size-[32px_32px]" />
|
||||
<div className="relative z-10 flex items-center gap-4 p-10">
|
||||
<Image
|
||||
src="/logo/lightLogo.png"
|
||||
alt="Revanios"
|
||||
src="/logo/lightLogoLong.png"
|
||||
alt="Neta"
|
||||
width={240}
|
||||
height={64}
|
||||
className="h-16 w-auto object-contain"
|
||||
@@ -85,7 +85,7 @@ export function AuthPageShell({
|
||||
variant="lead"
|
||||
className="mt-6 max-w-xl text-primary-foreground/78"
|
||||
>
|
||||
Revanios, günlük operasyonunu, projelerini, side projectlerini ve
|
||||
Neta, günlük operasyonunu, projelerini, side projectlerini ve
|
||||
temel finans durumunu sade raporlarla takip etmen için
|
||||
tasarlanır.
|
||||
</Typography>
|
||||
@@ -115,7 +115,7 @@ export function AuthPageShell({
|
||||
<div className="w-full relative z-10 p-10 text-sm text-primary-foreground/78">
|
||||
<span>Açık kaynak ve self-host edilebilir.</span>{" "}
|
||||
<Link
|
||||
href="https://github.com/poyrazavsever/revanios"
|
||||
href="https://github.com/poyrazavsever/neta"
|
||||
className="font-semibold text-primary-foreground underline-offset-4 hover:underline"
|
||||
target="_blank"
|
||||
>
|
||||
@@ -150,8 +150,8 @@ export function AuthPageShell({
|
||||
>
|
||||
<div className="mb-8 flex justify-center lg:hidden">
|
||||
<Image
|
||||
src="/logo/blackLogo.png"
|
||||
alt="Revanios logo"
|
||||
src="/logo/blackLogoLong.png"
|
||||
alt="Neta logo"
|
||||
width={180}
|
||||
height={56}
|
||||
className="h-14 w-auto object-contain"
|
||||
|
||||
@@ -72,10 +72,10 @@ export function DashboardShell({ children, user }: DashboardShellProps) {
|
||||
|
||||
<div className="flex flex-1 flex-col min-w-0">
|
||||
<header className="sticky top-0 z-30 flex h-14 items-center justify-between border-b border-border bg-background/95 px-4 backdrop-blur lg:hidden">
|
||||
<Link href="/" className="flex items-center gap-2 font-semibold">
|
||||
<Link href="/" className="flex justify-center items-center gap-2 font-semibold">
|
||||
<Image
|
||||
src="/logo/blackLogo.png"
|
||||
alt="Revanios"
|
||||
src="/logo/blackLogoLong.png"
|
||||
alt="Neta"
|
||||
width={120}
|
||||
height={32}
|
||||
className="h-8 w-auto object-contain"
|
||||
@@ -116,8 +116,8 @@ function AppSidebar({
|
||||
<SidebarHeader className="shrink-0 border-b-0 px-6 py-3">
|
||||
<Link href="/">
|
||||
<Image
|
||||
src="/logo/blackLogo.png"
|
||||
alt="Revanios"
|
||||
src="/logo/blackLogoLong.png"
|
||||
alt="Neta"
|
||||
width={160}
|
||||
height={48}
|
||||
className="h-12 w-auto object-contain"
|
||||
|
||||
@@ -76,8 +76,8 @@ export function PortalShell({ children, user, progress }: PortalShellProps) {
|
||||
<header className="sticky top-0 z-30 flex h-14 items-center justify-between border-b border-border bg-background/95 px-4 backdrop-blur lg:hidden">
|
||||
<Link href="/portal" className="flex items-center gap-2 font-semibold">
|
||||
<Image
|
||||
src="/logo/blackLogo.png"
|
||||
alt="Revanios"
|
||||
src="/logo/blackLogoLong.png"
|
||||
alt="Neta"
|
||||
width={120}
|
||||
height={32}
|
||||
className="h-8 w-auto object-contain"
|
||||
@@ -122,8 +122,8 @@ function AppSidebar({
|
||||
<SidebarHeader className="shrink-0 border-b-0 px-6 py-3">
|
||||
<Link href="/portal">
|
||||
<Image
|
||||
src="/logo/blackLogo.png"
|
||||
alt="Revanios"
|
||||
src="/logo/blackLogoLong.png"
|
||||
alt="Neta"
|
||||
width={160}
|
||||
height={48}
|
||||
className="h-12 w-auto object-contain"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
services:
|
||||
cognis-web:
|
||||
neta-web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
@@ -7,7 +7,7 @@ services:
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
||||
NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000}
|
||||
container_name: cognis-web
|
||||
container_name: neta-web
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
|
||||
|
Before Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"name": "Revanios",
|
||||
"short_name": "Revanios",
|
||||
"short_name": "Neta",
|
||||
"description": "Self-hosted freelancer operating dashboard",
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
@@ -10,12 +9,12 @@
|
||||
"start_url": "/",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/logo/icon.png",
|
||||
"src": "/logo/iconLogo.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/logo/icon.png",
|
||||
"src": "/logo/iconLogo.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
|
||||