chore: rebrand project from Revanios to Neta and update associated assets and configurations

This commit is contained in:
poyrazavsever
2026-06-09 14:46:44 +03:00
parent 68eb84abdb
commit d80af01d14
24 changed files with 39 additions and 40 deletions
Vendored
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -11,4 +11,4 @@ SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# GEMINI_API_KEY=your_gemini_api_key # GEMINI_API_KEY=your_gemini_api_key
# ─── Supabase Auth (Self-host'ta gerekli olabilir) ─────────── # ─── Supabase Auth (Self-host'ta gerekli olabilir) ───────────
# NEXT_PUBLIC_SITE_URL=https://cognis.example.com # NEXT_PUBLIC_SITE_URL=https://neta.example.com
+7 -7
View File
@@ -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
[![Next.js](https://img.shields.io/badge/Next.js-16.2.7-black?style=flat-square&logo=next.js)](https://nextjs.org/) [![Next.js](https://img.shields.io/badge/Next.js-16.2.7-black?style=flat-square&logo=next.js)](https://nextjs.org/)
[![React](https://img.shields.io/badge/React-19.2.7-blue?style=flat-square&logo=react)](https://react.dev/) [![React](https://img.shields.io/badge/React-19.2.7-blue?style=flat-square&logo=react)](https://react.dev/)
@@ -11,9 +11,9 @@
## Overview ## 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 ## Features and Modules
@@ -40,7 +40,7 @@ A restricted, read-only interface that you can share with your clients. They can
## Technical Architecture ## 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. - **Frontend:** Next.js (App Router) combined with React Server Components.
- **Styling:** Tailwind CSS with a custom, bespoke design system via Poyraz UI. - **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 ## 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 ### Prerequisites
- Docker and Docker Compose - Docker and Docker Compose
@@ -70,7 +70,7 @@ docker-compose up -d --build
``` ```
### First Administrator Account ### 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 ## License
+1 -1
View File
@@ -3,7 +3,7 @@ import { AnalyticsClient } from "./analytics-client";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
export const metadata = { export const metadata = {
title: "Analizler - Revanios", title: "Analizler - Neta",
}; };
export default async function AnalyticsPage() { export default async function AnalyticsPage() {
+1 -1
View File
@@ -33,7 +33,7 @@ const documents = [
date: "May 08, 2026", date: "May 08, 2026",
category: "Design", category: "Design",
starred: false, 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.", owner: "Alex R.",
tags: ["Design", "UI", "Branding"], tags: ["Design", "UI", "Branding"],
aiAnalysis: "Identifies 'Cyber-Lavender' as the primary action color. Typography is set to Geist Sans." aiAnalysis: "Identifies 'Cyber-Lavender' as the primary action color. Typography is set to Geist Sans."
+2 -2
View File
@@ -28,7 +28,7 @@ const goals = [
}, },
{ {
id: 2, id: 2,
title: "Launch Revanios AI Mobile App", title: "Launch Neta AI Mobile App",
category: "Product", category: "Product",
progress: 85, progress: 85,
deadline: "May 25, 2026", deadline: "May 25, 2026",
@@ -238,7 +238,7 @@ export default function GoalsPage() {
<div className="flex items-center gap-3"> <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 className="p-2 bg-blue-500/10 rounded-sm"><Briefcase className="h-4 w-4 text-blue-400" /></div>
<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 className="text-[9px] text-muted-foreground uppercase mt-1">Core Requirement</div>
</div> </div>
</div> </div>
+1 -1
View File
@@ -24,7 +24,7 @@ export default async function DashboardLayout({
redirect("/portal"); redirect("/portal");
} }
const fallbackName = user?.email?.split("@")[0] ?? "Revanios Kullanıcısı"; const fallbackName = user?.email?.split("@")[0] ?? "Neta Kullanıcısı";
const displayName = const displayName =
[profile?.first_name, profile?.last_name].filter(Boolean).join(" ") || [profile?.first_name, profile?.last_name].filter(Boolean).join(" ") ||
fallbackName; fallbackName;
+1 -1
View File
@@ -3,7 +3,7 @@ import { DashboardClient } from "./dashboard-client";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
export const metadata = { export const metadata = {
title: "Dashboard - Revanios", title: "Dashboard - Neta",
}; };
export default async function DashboardPage() { export default async function DashboardPage() {
+1 -1
View File
@@ -44,7 +44,7 @@ export async function POST(request: Request) {
const result = streamText({ const result = streamText({
model, 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. 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. Veri yoksa bunu açıkça söyle. Klinik, finansal veya hukuki kesin hüküm verme.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

+2 -2
View File
@@ -8,13 +8,13 @@ import { OfflineIndicator } from "@/components/ui/offline-indicator";
const geist = Geist({ subsets: ["latin"], variable: "--font-sans" }); const geist = Geist({ subsets: ["latin"], variable: "--font-sans" });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Revanios", title: "Neta",
description: "Self-hosted freelancer operating dashboard", description: "Self-hosted freelancer operating dashboard",
manifest: "/manifest.json", manifest: "/manifest.json",
appleWebApp: { appleWebApp: {
capable: true, capable: true,
statusBarStyle: "default", statusBarStyle: "default",
title: "Revanios", title: "Neta",
}, },
}; };
+1 -1
View File
@@ -24,7 +24,7 @@ export default async function LoginPage({
{error && message && <ErrorToaster message={String(message)} />} {error && message && <ErrorToaster message={String(message)} />}
<AuthPageShell <AuthPageShell
title="Giriş yap" 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={
<form className="space-y-6"> <form className="space-y-6">
<div className="space-y-4"> <div className="space-y-4">
+1 -1
View File
@@ -36,7 +36,7 @@ export default async function RegisterPage({
{error && message && <ErrorToaster message={String(message)} />} {error && message && <ErrorToaster message={String(message)} />}
<AuthPageShell <AuthPageShell
title="İlk admin hesabını oluştur" 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={
<form className="space-y-6"> <form className="space-y-6">
<div className="space-y-4"> <div className="space-y-4">
+6 -6
View File
@@ -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="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"> <div className="relative z-10 flex items-center gap-4 p-10">
<Image <Image
src="/logo/lightLogo.png" src="/logo/lightLogoLong.png"
alt="Revanios" alt="Neta"
width={240} width={240}
height={64} height={64}
className="h-16 w-auto object-contain" className="h-16 w-auto object-contain"
@@ -85,7 +85,7 @@ export function AuthPageShell({
variant="lead" variant="lead"
className="mt-6 max-w-xl text-primary-foreground/78" 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 temel finans durumunu sade raporlarla takip etmen için
tasarlanır. tasarlanır.
</Typography> </Typography>
@@ -115,7 +115,7 @@ export function AuthPageShell({
<div className="w-full relative z-10 p-10 text-sm text-primary-foreground/78"> <div className="w-full relative z-10 p-10 text-sm text-primary-foreground/78">
<span>Açık kaynak ve self-host edilebilir.</span>{" "} <span>Açık kaynak ve self-host edilebilir.</span>{" "}
<Link <Link
href="https://github.com/poyrazavsever/revanios" href="https://github.com/poyrazavsever/neta"
className="font-semibold text-primary-foreground underline-offset-4 hover:underline" className="font-semibold text-primary-foreground underline-offset-4 hover:underline"
target="_blank" target="_blank"
> >
@@ -150,8 +150,8 @@ export function AuthPageShell({
> >
<div className="mb-8 flex justify-center lg:hidden"> <div className="mb-8 flex justify-center lg:hidden">
<Image <Image
src="/logo/blackLogo.png" src="/logo/blackLogoLong.png"
alt="Revanios logo" alt="Neta logo"
width={180} width={180}
height={56} height={56}
className="h-14 w-auto object-contain" className="h-14 w-auto object-contain"
+5 -5
View File
@@ -72,10 +72,10 @@ export function DashboardShell({ children, user }: DashboardShellProps) {
<div className="flex flex-1 flex-col min-w-0"> <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"> <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 <Image
src="/logo/blackLogo.png" src="/logo/blackLogoLong.png"
alt="Revanios" alt="Neta"
width={120} width={120}
height={32} height={32}
className="h-8 w-auto object-contain" className="h-8 w-auto object-contain"
@@ -116,8 +116,8 @@ function AppSidebar({
<SidebarHeader className="shrink-0 border-b-0 px-6 py-3"> <SidebarHeader className="shrink-0 border-b-0 px-6 py-3">
<Link href="/"> <Link href="/">
<Image <Image
src="/logo/blackLogo.png" src="/logo/blackLogoLong.png"
alt="Revanios" alt="Neta"
width={160} width={160}
height={48} height={48}
className="h-12 w-auto object-contain" className="h-12 w-auto object-contain"
+4 -4
View File
@@ -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"> <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"> <Link href="/portal" className="flex items-center gap-2 font-semibold">
<Image <Image
src="/logo/blackLogo.png" src="/logo/blackLogoLong.png"
alt="Revanios" alt="Neta"
width={120} width={120}
height={32} height={32}
className="h-8 w-auto object-contain" className="h-8 w-auto object-contain"
@@ -122,8 +122,8 @@ function AppSidebar({
<SidebarHeader className="shrink-0 border-b-0 px-6 py-3"> <SidebarHeader className="shrink-0 border-b-0 px-6 py-3">
<Link href="/portal"> <Link href="/portal">
<Image <Image
src="/logo/blackLogo.png" src="/logo/blackLogoLong.png"
alt="Revanios" alt="Neta"
width={160} width={160}
height={48} height={48}
className="h-12 w-auto object-contain" className="h-12 w-auto object-contain"
+2 -2
View File
@@ -1,5 +1,5 @@
services: services:
cognis-web: neta-web:
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
@@ -7,7 +7,7 @@ services:
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL} NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY} NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000} NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000}
container_name: cognis-web container_name: neta-web
restart: unless-stopped restart: unless-stopped
ports: ports:
- "3000:3000" - "3000:3000"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

+3 -4
View File
@@ -1,6 +1,5 @@
{ {
"name": "Revanios", "short_name": "Neta",
"short_name": "Revanios",
"description": "Self-hosted freelancer operating dashboard", "description": "Self-hosted freelancer operating dashboard",
"theme_color": "#ffffff", "theme_color": "#ffffff",
"background_color": "#ffffff", "background_color": "#ffffff",
@@ -10,12 +9,12 @@
"start_url": "/", "start_url": "/",
"icons": [ "icons": [
{ {
"src": "/logo/icon.png", "src": "/logo/iconLogo.png",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "/logo/icon.png", "src": "/logo/iconLogo.png",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png" "type": "image/png"
} }