RT
Active ToDy95/razvan-todica-business-portfolio

Răzvan Todică Business Portfolio & Automation OS

Portfolio platform / business automation workspace

A private-first portfolio and business operating layer that turns real engineering work into a clear public story, a controlled lead flow, and an approval-gated content engine.

Latest signal

Sep 1, 2026

Synced Sep 11, 2026

100

Commits · 365 days

100

Pull requests · 365 days

0

Issues · 365 days

0

Code reviews · 365 days

Public summary

Public summary

What this project is

This is a live personal portfolio, but it is deliberately more than a collection of pages. It is a private-first business operating layer for presenting engineering work, explaining product thinking, capturing qualified enquiries, managing editorial content, and distributing approved stories across the channels where the brand already exists.

The public site is the visible layer: it explains the work, services, experience, and active projects in a business-first way. The protected owner workspace is the control layer: it manages leads, editorial drafts, source material, approvals, integrations, delivery status, and operational follow-up. The goal is to make the system useful both as a portfolio and as a repeatable engine for trust, conversations, and future content.

What it brings to the business

  • A clearer public explanation of what is being built, why it matters, and what could come next.
  • A controlled way to turn private GitHub projects into sanitized public case studies without making the repositories public.
  • A single place to capture, review, qualify, and follow up on inbound opportunities.
  • A source-backed editorial workflow that can create drafts and distribution variants while keeping human approval in the loop.
  • A foundation for future video and social automation without pretending that an unverified provider integration is already production-ready.

Main capabilities

Public portfolio and project intelligence

The site contains the personal brand homepage, service pages, client/product work, contact flow, legal pages, and a live Currently Building area. The public project pages can show the business concept, current status, focus areas, roadmap, technology choices, selected links, recent activity, and a contribution-style graph.

Private GitHub repositories are never called directly by public visitors. The owner connects a read-only GitHub App, selects the repositories that are allowed into the portfolio, and adds an explicit .portfolio/allow file to each repository. The sync reads only the known public brief files and bounded GitHub metadata, sanitizes Markdown and URLs, and stores the public-safe result in Supabase. Removing the marker removes the cached project at the next successful sync.

The .portfolio contract keeps the project story next to the code:

  • config.json holds title, status, technology, links, focus areas, display settings, and roadmap items;
  • summary.md explains the idea, business value, current state, and future direction;
  • implementation-plan.md contains the intentionally published milestone view for this repository;
  • allow is the explicit publication switch.

Owner workspace, database, and security

Supabase provides the Postgres and Storage foundation. RLS policies keep owner data and editorial records behind the server-side boundary, while Supabase Auth protects the admin workspace. The service-side key is never sent to the browser. The architecture keeps public reads narrow and uses server routes for sensitive mutations.

Lead capture, mailing, and OpportunityOS

The contact form collects a structured enquiry with validation, consent handling, optional phone contact, attribution context, and abuse protection. A valid submission can be persisted as lead data and delivered through Resend as an owner notification plus a sender acknowledgement when the mail configuration is available. The owner can review leads in the private inbox, track their status, and open a direct reply flow without exposing the message to analytics.

The OpportunityOS integration is a protected, signed lead-delivery path. It can forward validated lead payloads to the external system when configured, records delivery attempts, and keeps failures visible for retry. It is not a public write endpoint and does not silently send unrelated visitor messages.

Chat and owner response

The homepage includes a session-scoped live chat launcher. Visitors can leave a bounded message and continue the same conversation during their session. The owner can set availability, read and answer messages from /admin/chat, and optionally receive Web Push notifications through the installed PWA. Chat data remains behind server routes and RLS-protected tables; it is not exposed as an anonymous Supabase browser channel.

The current chat is intentionally owner-replied. Automatic AI replies are not claimed as delivered; the next step is to decide whether an AI assistant should draft replies under the same owner review and privacy rules.

AI-assisted editorial automation

The editorial pipeline uses a curated source registry instead of unrestricted scraping. It normalizes and deduplicates source items, ranks relevant material, creates an article brief and original draft, produces one shared short social variant, and prepares a vertical-video brief. When the server-side OpenAI configuration is available, it can also generate a structured editorial package and an optional cover image. Provider failures fall back to a deterministic source-backed draft and leave the cover ready for explicit review rather than making a false claim.

The owner can edit, approve, schedule, publish, retry, or reject. Automatic publishing is gated by an explicit owner policy, a complete package, a source trail, and idempotent delivery records. The system keeps a run ID, step status, error state, retry path, and audit trail so an automation failure does not become an invisible business failure.

Social and content distribution

The distribution workspace reuses one approved short post and its approved cover rather than asking the AI to invent a separate story for every network. The current connector surface includes:

  • LinkedIn personal profile publishing;
  • Facebook Page publishing and a separately audited Page Story follow-up;
  • X publishing, including mechanical thread splitting when needed;
  • Instagram professional feed publishing with a native Share to Story handoff;
  • Threads and Bluesky publishing;
  • Pinterest Business and Personal connector paths with separate account authorization and Board selection.

Every delivery is approval-gated, provider-specific, retryable, and protected against duplicate publishing. Pinterest Business still has external developer setup/approval follow-up, and Pinterest Personal requires its separate owner authorization. YouTube Shorts receives a reviewable brief and manual posting support. TikTok also has a personal photo/carousel connector with explicit owner confirmation, while automatic TikTok video publishing is not claimed.

What is still coming soon

The next product step is an end-to-end video pipeline:

  1. take an approved article or live-post concept;
  2. generate a vertical video with a controlled visual language, voice/captions, and safe asset provenance;
  3. keep the video as a reviewable asset in the private workspace;
  4. publish only after owner approval to Instagram Reels, Facebook Reels, TikTok, and YouTube Shorts;
  5. record a provider-specific delivery result, permalink, retry state, and duplicate guard.

This is intentionally marked Coming soon. The repository already produces editorial video briefs, but automatic video generation and automatic Reels/Shorts/TikTok video publishing are not yet implemented as a complete production flow.

Current activity

The portfolio sync can show the last 365 days of repository activity, including commits, pull requests, issues, and reviews. This project also exposes a public GitHub profile card for ToDy95. The profile card uses public GitHub statistics and, when selected portfolio repositories are synchronized, a privacy-safe aggregate of their activity. Private repository details and the owner's global private GitHub contribution total are not copied into the public portfolio.

Guardrails

The project is designed around private-by-default integrations, explicit opt-in, server-only secrets, RLS, consent-aware analytics, source attribution, human review before external publishing, idempotent retries, and honest status labels. It is a portfolio, but it is also a small operating system for turning engineering work into evidence, conversations, and durable business assets.

Contribution graph

The work behind the work.

Commits, PRs, issues and reviews

200 recorded activities in the selected range.

All available activity

LessMore
Monthly activity totals
Recorded activity for the selected range, grouped by month
MonthActivities
2025-080
2025-090
2025-100
2025-110
2025-120
2026-010
2026-020
2026-030
2026-040
2026-050
2026-060
2026-070
2026-08124
2026-0976

Recent activity

What is moving now.

  1. [TOD-098] Separate article and footer affiliate layoutsPull request - merged · Sep 10, 2026
  2. [TOD-098]fix(affiliate): separate article and footer layouts (#102)Commit · Sep 10, 2026
  3. [TOD-097] Preserve mobile publishing target after sign-inPull request - merged · Sep 10, 2026
  4. [TOD-097]fix(auth): preserve mobile target after sign-inCommit · Sep 10, 2026
  5. [TOD-096]feat: ship affiliate and mobile publishing surfacesPull request - merged · Sep 10, 2026
  6. [TOD-096]feat: ship affiliate and mobile publishing surfacesCommit · Sep 10, 2026
  7. [TOD-094]docs: complete milestone orderPull request - merged · Sep 10, 2026
  8. [TOD-094]docs: complete milestone orderCommit · Sep 10, 2026
  9. [TOD-094]docs: reconcile affiliate release milestoneCommit · Sep 10, 2026
  10. [TOD-094]docs: reconcile affiliate release milestonePull request - merged · Sep 10, 2026
  11. [TOD-094]docs: record affiliate release evidencePull request - merged · Sep 10, 2026
  12. [TOD-094]docs: record affiliate release evidenceCommit · Sep 10, 2026
  13. [TOD-093] Add global affiliate recommendation surfacesPull request - merged · Sep 10, 2026
  14. [TOD-093]feat(affiliate): add global recommendation surfacesCommit · Sep 10, 2026
  15. [TOD-086] Add Profitshare validation filePull request - merged · Sep 10, 2026
  16. [TOD-086]chore(affiliate): add profitshare validation fileCommit · Sep 10, 2026
  17. [TOD-092] Rotate contextual affiliate recommendationsPull request - merged · Sep 10, 2026
  18. [TOD-092]feat(affiliate): rotate article recommendations (#94)Commit · Sep 10, 2026
  19. [TOD-091] Add global affiliate geo routingPull request - merged · Sep 10, 2026
  20. [TOD-091] Add global affiliate geo routing (#93)Commit · Sep 10, 2026

Published roadmap

What is shipped and what comes next

This roadmap is intentionally public. It describes the product direction without exposing secrets, private messages, credentials, internal logs, or confidential client information.

Delivered

  • [done] Public personal portfolio with service positioning, client/product work, contact flow, legal pages, responsive navigation, and SEO discovery routes.
  • [done] Supabase Postgres and Storage foundation with generated types, RLS policies, server-only access, and owner authentication for the admin workspace.
  • [done] Structured lead capture with validation, consent, attribution, rate protection, idempotent retries, Resend notification/acknowledgement support, private lead inbox, and status tracking.
  • [done] Signed OpportunityOS lead delivery path with audit records and protected retry behavior.
  • [done] Owner-replied live chat, owner presence, private chat persistence, PWA support, and optional Web Push notification flow. A real owner-device push check remains operational follow-up.
  • [done] Curated editorial source registry, deduplication, source-backed drafts, citations, SEO fields, review states, and private editorial run history.
  • [done] Optional OpenAI editorial package and cover generation with deterministic fallbacks and owner review before publishing.
  • [done] Approval-gated distribution workspace with shared social copy, platform variants, delivery status, idempotency keys, and manual copy/download support.
  • [done] LinkedIn personal, Facebook Page, X, Instagram feed, Threads, and Bluesky delivery paths; Facebook Page Story follow-up; separate Pinterest Business and Personal connector paths.
  • [done] Private GitHub App project discovery with owner selection, .portfolio/allow opt-in, sanitized Markdown/config, cached project activity, and public project pages.

Operationally pending

  • [in-progress] Complete the authenticated GitHub connection in the admin workspace, refresh the repository list, select the desired repositories, add their public .portfolio briefs, and run a controlled sync.
  • [in-progress] Finish external Pinterest Business developer approval and the separate Pinterest Personal authorization if those destinations are needed.
  • [in-progress] Run a controlled production Web Push test on the owner's device.
  • [in-progress] Confirm each enabled social account and feature flag in production before enabling unattended publishing.

Coming soon

  • [planned] Generate production-safe vertical videos from approved articles and live-post concepts, including captions, asset provenance, reviewable files, and cost/usage tracking.
  • [planned] Add approval-gated automatic publishing to Instagram Reels, Facebook Reels, TikTok video, and YouTube Shorts with provider-specific status, retry, permalink, and duplicate protection. Personal TikTok photo delivery is implemented separately and remains provider-review gated.
  • [planned] Evaluate an AI chat assistant that drafts visitor replies for owner approval. Automatic AI replies are intentionally not enabled today.
  • [planned] Expand analytics and reporting around approved content, leads, and distribution outcomes without collecting sensitive lead fields in event properties.

Product rule

Every automated action should be observable, retryable, idempotent, and reviewable. A connector is not considered complete merely because an OAuth button exists; the provider account, permissions, asset format, delivery result, and failure path must be verified before it is described as live.