These are a bunch of random tools I've found useful with Obsidian + Github sync (the latter is required for these to work).
Right now there are three main things it does:
Runs on Vercel with the help of a few other services.
To give you a sense, here's the structure of the Daily and Weekly Summaries:
Daily Summaries are automatically generated each day and provide a concise overview of the day's activities, insights, and key information. They typically include:
Overall Summary: A brief paragraph summarizing the main events, discussions, and developments of the day.
Interesting Ideas: A bullet-point list of noteworthy concepts or thoughts that emerged during the day.
Common Themes: Recurring topics or patterns observed across various activities or discussions.
Questions for Exploration: Open-ended questions or areas identified for further investigation.
Possible Next Steps: Actionable items or potential follow-up tasks based on the day's events.
Notes: Detailed breakdowns of specific meetings, conversations, or activities that occurred during the day.
URLs: A list of relevant links mentioned or accessed during the day, with brief descriptions of their content.
Weekly Summaries are generated at the end of each week, providing a higher-level overview of the week's activities and insights. They typically include:
Overall Summary: A comprehensive paragraph or two summarizing the main themes, developments, and achievements of the week.
Strategic Implications: Key insights or decisions that could have long-term impacts on projects or strategies.
Challenges & Opportunities: A breakdown of obstacles faced and potential areas for growth or improvement identified during the week.
Key Developments & Trends: Significant progress made on projects or notable trends observed in the industry or work environment.
Long Term Implications: Potential long-range effects of the week's events or decisions on future projects or strategies.
Goals for Next Week: Specific objectives or tasks to focus on in the coming week, based on the current week's outcomes.
These summaries serve as a quick reference for tracking progress, identifying patterns, and maintaining focus on important goals and ideas over time.
To use the Google Calendar integration, we'll set up a Google Cloud service account. Follow these steps:
Now, set up your environment variables:
Open the downloaded JSON file.
In your .env
file, add the following:
GOOGLE_CLIENT_EMAIL=your-service-account-email@your-project.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYour Private Key Here\n-----END PRIVATE KEY-----\n"
[email protected]
Replace [email protected]
with the client_email
from your JSON file. For the GOOGLE_PRIVATE_KEY
,
copy the entire private key from the JSON file, including the "-----BEGIN
PRIVATE KEY-----" and "-----END PRIVATE KEY-----" parts. Set CALENDAR_NAME
to the email address of the Google Calendar you want to access.
Share your calendar:
Remember to never commit your .env
file to version control. If deploying to
Vercel, add these environment variables in your Vercel project settings.
Copy the env.example
file to .env
and fill in whatever you need.
SECRET_KEY
is currently used by Postmark for emails.CRON_SECRET
is used by Vercel for daily summaries.YOUR_NAME
and YOUR_BIO
are used in the prompt.If you're using Postmark:
.env
file underSECRET_KEY
. If you want something simple, just/api/email?token=SECRET_KEY
(make sure to add your SECRET_KEY
from step[email protected]
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
This project uses
next/font
to
automatically optimize and load Inter, a custom Google Font.
For local development, you can set up a Cloudflare tunnel that you can call from airtable. I like the instructions here.
You'll need to be a Cloudflare user with a domain pointing there (it's free to use their DNS servies). If you want to use another tunnel service, go for it. This doesn't matter except for testing.
brew install cloudflare/cloudflare/cloudflared
Then:
cloudflared tunnel login
cloudflared tunnel create <Tunnel-NAME>
After that, point the subdomain to the tunnel:
cloudflared tunnel route dns <Tunnel-NAME> <SUBDOMAIN>
First, create a new folder at the root of the app called .cloudflared
.
Second, on your computer, find ~/.cloudflared/<Tunnel-UUID>.json
and copy that
file to the .cloudflared
folder we just created. After it's copied, make
sure you rename it credentials.json
.
Third, create a file in that folder called config.yml
with the following info:
tunnel: <Tunnel-UUID>
credentials-file: .cloudflared/credentials.json
noTLSVerify: true
Finally, give bin/tunnel
execute permissions:
chmod +x bin/tunnel
Assuming your app is already running (if it's not, npm run dev
), then all you
need to do is run:
bin/tunnel <port>
For example, if it's running on 3000 (default) you would run bin/tunnel 3000
in a new terminal window and everything should be good to go. Test it out by
going to the domain you entered and you should see the homepage for the app (it
just says "airtable helpers" if you haven't changed anything).
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
This project is licensed under the Server Side Public License (SSPL). See the LICENSE file for details.