├── .env ├── .gitignore ├── next.config.js ├── styles └── global.css ├── postcss.config.js ├── prisma ├── migrations │ ├── migration_lock.toml │ └── 20220708085020_init │ │ └── migration.sql ├── schema.prisma ├── seed.ts └── data.json ├── .vscode └── settings.json ├── pages ├── _app.tsx ├── api │ └── quote.ts └── index.tsx ├── next-env.d.ts ├── tailwind.config.js ├── renovate.json ├── README.md ├── tsconfig.json ├── lib └── prisma.ts └── package.json /.env: -------------------------------------------------------------------------------- 1 | MIGRATE_DATABASE_URL="" 2 | 3 | DATABASE_URL="" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .next/ 3 | 4 | .vercel 5 | dev.env -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | experimental: { }, 3 | }; -------------------------------------------------------------------------------- /styles/global.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "spellright.language": [ 3 | "en" 4 | ], 5 | "spellright.documentTypes": [ 6 | "markdown", 7 | "latex", 8 | "plaintext" 9 | ] 10 | } -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { AppProps } from "next/app"; 2 | import '../styles/global.css' 3 | 4 | const App = ({ Component, pageProps }: AppProps) => { 5 | return 6 | }; 7 | 8 | export default App; -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./pages/**/*.{js,ts,jsx,tsx}", 5 | "./components/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: {}, 9 | }, 10 | plugins: [], 11 | } 12 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:base" 5 | ], 6 | "automerge": true, 7 | "major": { 8 | "automerge": false 9 | }, 10 | "baseBranches": ["main", "starter"], 11 | "additionalReviewers": ["ruheni"] 12 | } 13 | -------------------------------------------------------------------------------- /prisma/migrations/20220708085020_init/migration.sql: -------------------------------------------------------------------------------- 1 | -- CreateTable 2 | CREATE TABLE "Quote" ( 3 | "id" SERIAL NOT NULL, 4 | "content" TEXT NOT NULL, 5 | "author" TEXT NOT NULL, 6 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 7 | "updatedAt" TIMESTAMP(3) NOT NULL, 8 | 9 | CONSTRAINT "Quote_pkey" PRIMARY KEY ("id") 10 | ); 11 | -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- 1 | generator client { 2 | provider = "prisma-client-js" 3 | } 4 | 5 | datasource db { 6 | provider = "postgres" 7 | url = env("DATABASE_URL") 8 | directUrl = env("MIGRATE_DATABASE_URL") 9 | } 10 | 11 | model Quote { 12 | id Int @id @default(autoincrement()) 13 | content String 14 | author String 15 | createdAt DateTime @default(now()) 16 | updatedAt DateTime @updatedAt 17 | } 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Prisma and Vercel Edge functions 2 | 3 | This sample application shows how to work with traditional relational databases on the Edge using Prisma. 4 | 5 | [Guide](https://www.prisma.io/blog/database-access-on-the-edge-8F0t1s1BqOJE#demo-database-access-on-the-edge) 6 | 7 | Getting started: 8 | 9 | ``` 10 | npx create-next-app --example https://github.com/prisma/prisma-edge-functions/tree/starter prisma-edge-functions 11 | ``` 12 | -------------------------------------------------------------------------------- /prisma/seed.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | import quotes from "./data.json" 3 | const prisma = new PrismaClient(); 4 | 5 | export async function main() { 6 | console.log("[Elevator Music Cue] 🎸") 7 | for (let quote of quotes) { 8 | await prisma.quote.create({ 9 | data: { 10 | author: quote.author, 11 | content: quote.content 12 | } 13 | }) 14 | } 15 | console.log("Done 🎉") 16 | } 17 | 18 | main() -------------------------------------------------------------------------------- /pages/api/quote.ts: -------------------------------------------------------------------------------- 1 | import prisma from '../../lib/prisma' 2 | 3 | export const config = { 4 | runtime: 'edge', 5 | }; 6 | 7 | export default async function () { 8 | const count = await prisma.quote.aggregate({ 9 | _count: true, 10 | }) 11 | 12 | const randomNo = Math.floor(Math.random() * count._count); 13 | 14 | const quote = await prisma.quote.findUnique({ 15 | where: { id: randomNo, } 16 | }) 17 | console.log({ quote }) 18 | 19 | return new Response( 20 | JSON.stringify(quote), 21 | { 22 | status: 200, 23 | headers: { 24 | 'content-type': 'application/json', 25 | 'cache-control': 'public, s-maxage=10, stale-while-revalidate=60', 26 | }, 27 | } 28 | ) 29 | } 30 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": false, 12 | "forceConsistentCasingInFileNames": true, 13 | "noEmit": true, 14 | "esModuleInterop": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "jsx": "preserve", 20 | "incremental": true 21 | }, 22 | "exclude": [ 23 | "node_modules" 24 | ], 25 | "include": [ 26 | "next-env.d.ts", 27 | "**/*.ts", 28 | "**/*.tsx" 29 | ], 30 | "ts-node": { 31 | "compilerOptions": { 32 | "module": "commonjs" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/prisma.ts: -------------------------------------------------------------------------------- 1 | // PrismaClient is attached to the `global` object in development to prevent 2 | // exhausting your database connection limit. 3 | // 4 | // Learn more: 5 | // https://pris.ly/d/help/next-js-best-practices 6 | 7 | import { PrismaClient } from '@prisma/client/edge' 8 | import { withAccelerate } from "@prisma/extension-accelerate"; 9 | 10 | const prismaClientSingleton = () => { 11 | return new PrismaClient().$extends(withAccelerate()) 12 | } 13 | 14 | type PrismaClientSingleton = ReturnType 15 | 16 | const globalForPrisma = globalThis as unknown as { 17 | prisma: PrismaClientSingleton | undefined 18 | } 19 | 20 | const prisma = globalForPrisma.prisma ?? prismaClientSingleton() 21 | 22 | export default prisma 23 | 24 | if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hello-next", 3 | "version": "1.0.0", 4 | "description": "", 5 | "keywords": [], 6 | "license": "MIT", 7 | "author": "", 8 | "main": "index.js", 9 | "scripts": { 10 | "dev": "next", 11 | "build": "next build", 12 | "start": "next start", 13 | "postinstall": "prisma generate --no-engine" 14 | }, 15 | "dependencies": { 16 | "@prisma/client": "5.6.0", 17 | "@prisma/extension-accelerate": "^0.6.2", 18 | "next": "14.0.3", 19 | "react": "18.2.0", 20 | "react-dom": "18.2.0" 21 | }, 22 | "devDependencies": { 23 | "@types/node": "20.10.0", 24 | "@types/react": "18.2.38", 25 | "autoprefixer": "10.4.16", 26 | "postcss": "8.4.31", 27 | "prisma": "5.6.0", 28 | "tailwindcss": "3.3.5", 29 | "ts-node": "10.9.1", 30 | "typescript": "5.3.2" 31 | }, 32 | "prisma": { 33 | "seed": "ts-node prisma/seed.ts" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /pages/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useRouter } from 'next/router' 3 | import type { GetServerSideProps } from "next"; 4 | import type { Quote } from "@prisma/client"; 5 | 6 | import prisma from '../lib/prisma' 7 | 8 | export const config = { 9 | runtime: 'experimental-edge', 10 | } 11 | 12 | export const getServerSideProps: GetServerSideProps = async () => { 13 | const count = await prisma.quote.count({ 14 | select: { 15 | id: true 16 | } 17 | }); 18 | 19 | const randomNo = Math.floor(Math.random() * count.id); 20 | 21 | const quote = await prisma.quote.findUnique({ 22 | where: { id: randomNo, } 23 | }) 24 | 25 | // seriaize and deserialize Date values 26 | return { 27 | props: { quote: JSON.parse(JSON.stringify(quote)) } 28 | } 29 | } 30 | 31 | type Props = { 32 | quote: Quote; 33 | }; 34 | 35 | 36 | const Index: React.FC = (props) => { 37 | const router = useRouter() 38 | return ( 39 |
40 |
41 |
42 |

43 | {props.quote.content} 44 |

45 | 46 |

47 | {props.quote.author} 48 |

49 | 50 |
51 | 55 |
56 |
57 |
58 |
59 | ); 60 | }; 61 | 62 | export default Index; -------------------------------------------------------------------------------- /prisma/data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "author": "Confucius", 4 | "content": "The Superior Man is aware of Righteousness, the inferior man is aware of advantage." 5 | }, 6 | { 7 | "author": "Parker Palmer", 8 | "content": "America's freedom of religion, and freedom from religion, offers every wisdom tradition an opportunity to address our soul-deep needs: Christianity, Judaism, Islam, Buddhism, Hinduism, secular humanism, agnosticism and atheism among others." 9 | }, 10 | { 11 | "author": "George Orwell", 12 | "content": "Myths which are believed in tend to become true." 13 | }, 14 | { 15 | "author": "Carl Jung", 16 | "content": "In all chaos there is a cosmos, in all disorder a secret order." 17 | }, 18 | { 19 | "author": "George Washington", 20 | "content": "Be courteous to all, but intimate with few, and let those few be well tried before you give them your confidence." 21 | }, 22 | { 23 | "author": "Robert Fulghum", 24 | "content": "If you break your neck, if you have nothing to eat, if your house is on fire, then you got a problem. Everything else is inconvenience." 25 | }, 26 | { 27 | "author": "Eckhart Tolle", 28 | "content": "The past has no power to stop you from being present now. Only your grievance about the past can do that." 29 | }, 30 | { 31 | "author": "Marcus Aurelius", 32 | "content": "There is nothing happens to any person but what was in his power to go through with." 33 | }, 34 | { 35 | "author": "Oscar Wilde", 36 | "content": "The smallest act of kindness is worth more than the grandest intention." 37 | }, 38 | { 39 | "author": "Richard Bach", 40 | "content": "Every problem has a gift for you in its hands." 41 | }, 42 | { 43 | "author": "René Descartes", 44 | "content": "The greatest minds are capable of the greatest vices as well as of the greatest virtues." 45 | }, 46 | { 47 | "author": "Ralph Waldo Emerson", 48 | "content": "The world makes way for the man who knows where he is going." 49 | }, 50 | { 51 | "author": "W. Clement Stone", 52 | "content": "You are a product of your environment. So choose the environment that will best develop you toward your objective. Analyze your life in terms of its environment. Are the things around you helping you toward success - or are they holding you back?" 53 | }, 54 | { 55 | "author": "Confucius", 56 | "content": "The cautious seldom err." 57 | }, 58 | { 59 | "author": "Sigmund Freud", 60 | "content": "The most complicated achievements of thought are possible without the assistance of consciousness." 61 | }, 62 | { 63 | "author": "John F. Kennedy", 64 | "content": "As we express our gratitude, we must never forget that the highest appreciation is not to utter words, but to live by them." 65 | }, 66 | { 67 | "author": "Socrates", 68 | "content": "The greatest way to live with honor in this world is to be what we pretend to be." 69 | }, 70 | { 71 | "author": "Richard Bach", 72 | "content": "Every person, all the events of your life are there because you have drawn them there. What you choose to do with them is up to you." 73 | }, 74 | { 75 | "author": "Daniel Webster", 76 | "content": "Wisdom begins at the end." 77 | }, 78 | { 79 | "author": "Sophocles", 80 | "content": "Ignorant men don't know what good they hold in their hands until they've flung it away." 81 | }, 82 | { 83 | "author": "Buddha", 84 | "content": "However many holy words you read, however many you speak, what good will they do you if you do not act on upon them?" 85 | }, 86 | { 87 | "author": "Will Durant", 88 | "content": "Science gives us knowledge, but only philosophy can give us wisdom." 89 | }, 90 | { 91 | "author": "Fawn M. Brodie", 92 | "content": "A passion for politics stems usually from an insatiable need, either for power, or for friendship and adulation, or a combination of both." 93 | }, 94 | { 95 | "author": "Thomas à Kempis", 96 | "content": "Be not angry that you cannot make others as you wish them to be, since you cannot make yourself as you wish to be." 97 | }, 98 | { 99 | "author": "Eleanor Roosevelt", 100 | "content": "No one can make you feel inferior without your consent." 101 | }, 102 | { 103 | "author": "Margaret Cousins", 104 | "content": "Appreciation can make a day, even change a life. Your willingness to put it into words is all that is necessary." 105 | }, 106 | { 107 | "author": "Sophocles", 108 | "content": "Much wisdom often goes with fewest words." 109 | }, 110 | { 111 | "author": "Anne Lamott", 112 | "content": "Joy is the best makeup." 113 | }, 114 | { 115 | "author": "Benjamin Franklin", 116 | "content": "There never was a good knife made of bad steel." 117 | }, 118 | { 119 | "author": "Colette", 120 | "content": "I love my past. I love my present. Im not ashamed of what Ive had, and Im not sad because I have it no longer." 121 | }, 122 | { 123 | "author": "Francis Bacon", 124 | "content": "There is a difference between happiness and wisdom: he that thinks himself the happiest man is really so; but he that thinks himself the wisest is generally the greatest fool." 125 | }, 126 | { 127 | "author": "Joan Didion", 128 | "content": "To free us from the expectations of others, to give us back to ourselves... there lies the great, singular power of self-respect." 129 | }, 130 | { 131 | "author": "Laozi", 132 | "content": "The power of intuitive understanding will protect you from harm until the end of your days." 133 | }, 134 | { 135 | "author": "Elbert Hubbard", 136 | "content": "Never explain - your friends do not need it and your enemies will not believe you anyway." 137 | }, 138 | { 139 | "author": "Jim Rohn", 140 | "content": "Discipline is the bridge between goals and accomplishment." 141 | }, 142 | { 143 | "author": "Molière", 144 | "content": "It is not only for what we do that we are held responsible, but also for what we do not do." 145 | }, 146 | { 147 | "author": "Laozi", 148 | "content": "All difficult things have their origin in that which is easy, and great things in that which is small." 149 | }, 150 | { 151 | "author": "Walter Lippmann", 152 | "content": "It requires wisdom to understand wisdom: the music is nothing if the audience is deaf." 153 | }, 154 | { 155 | "author": "Ralph Waldo Emerson", 156 | "content": "So is cheerfulness, or a good temper, the more it is spent, the more remains." 157 | }, 158 | { 159 | "author": "Benjamin Spock", 160 | "content": "Trust yourself. You know more than you think you do." 161 | }, 162 | { 163 | "author": "Publilius Syrus", 164 | "content": "Never promise more than you can perform." 165 | }, 166 | { 167 | "author": "Tom Peters", 168 | "content": "Formula for success: under promise and over deliver." 169 | }, 170 | { 171 | "author": "Franklin D. Roosevelt", 172 | "content": "The only limit to our realization of tomorrow will be our doubts of today." 173 | }, 174 | { 175 | "author": "Judy Collins", 176 | "content": "I think people who are creative are the luckiest people on earth. I know that there are no shortcuts, but you must keep your faith in something Greater than You, and keep doing what you love. Do what you love, and you will find the way to get it out to the world." 177 | }, 178 | { 179 | "author": "George Bernard Shaw", 180 | "content": "The possibilities are numerous once we decide to act and not react." 181 | }, 182 | { 183 | "author": "Edward de Bono", 184 | "content": "It is better to have enough ideas for some of them to be wrong, than to be always right by having no ideas at all." 185 | }, 186 | { 187 | "author": "Henry David Thoreau", 188 | "content": "The most I can do for my friend is simply be his friend." 189 | }, 190 | { 191 | "author": "Maria Montessori", 192 | "content": "Every one in the world ought to do the things for which he is specially adapted. It is the part of wisdom to recognize what each one of us is best fitted for, and it is the part of education to perfect and utilize such predispositions. Because education can direct and aid nature but can never transform her." 193 | }, 194 | { 195 | "author": "Marcus Aurelius", 196 | "content": "He who lives in harmony with himself lives in harmony with the world." 197 | }, 198 | { 199 | "author": "Thomas Edison", 200 | "content": "The first requisite for success is the ability to apply your physical and mental energies to one problem incessantly without growing weary." 201 | }, 202 | { 203 | "author": "Wayne Dyer", 204 | "content": "Go for it now. The future is promised to no one." 205 | }, 206 | { 207 | "author": "Margaret Thatcher", 208 | "content": "To wear your heart on your sleeve isn't a very good plan; you should wear it inside, where it functions best." 209 | }, 210 | { 211 | "author": "Sophocles", 212 | "content": "You win the victory when you yield to friends." 213 | }, 214 | { 215 | "author": "Tryon Edwards", 216 | "content": "He that never changes his opinions, never corrects his mistakes, and will never be wiser on the morrow than he is today." 217 | }, 218 | { 219 | "author": "Jean Antoine Petit-Senn", 220 | "content": "Not what we have but what we enjoy constitutes our abundance." 221 | }, 222 | { 223 | "author": "George S. Patton", 224 | "content": "Never tell people how to do things. Tell them what to do and they will surprise you with their ingenuity." 225 | }, 226 | { 227 | "author": "Johann Wolfgang von Goethe", 228 | "content": "A really great talent finds its happiness in execution." 229 | }, 230 | { 231 | "author": "Aeschylus", 232 | "content": "Wisdom comes alone through suffering." 233 | }, 234 | { 235 | "author": "Mother Teresa", 236 | "content": "Every time you smile at someone, it is an action of love, a gift to that person, a beautiful thing." 237 | }, 238 | { 239 | "author": "Robert Louis Stevenson", 240 | "content": "Marriage: A friendship recognized by the police." 241 | }, 242 | { 243 | "author": "Rabbi Hillel", 244 | "content": "If I am not for myself, who will be for me? If I am not for others, what am I? And if not now, when?" 245 | }, 246 | { 247 | "author": "Joe Namath", 248 | "content": "If you aren't going all the way, why go at all?" 249 | }, 250 | { 251 | "author": "Theodore H. White", 252 | "content": "To go against the dominant thinking of your friends, of most of the people you see every day, is perhaps the most difficult act of heroism you can perform." 253 | }, 254 | { 255 | "author": "Albert Schweitzer", 256 | "content": "Success is not the key to happiness. Happiness is the key to success. If you love what you are doing, you will be successful." 257 | }, 258 | { 259 | "author": "Margaret Mead", 260 | "content": "Always remember that you are absolutely unique. Just like everyone else." 261 | }, 262 | { 263 | "author": "Holly Near", 264 | "content": "If you have the guts to keep making mistakes, your wisdom and intelligence leap forward with huge momentum." 265 | }, 266 | { 267 | "author": "David Rockefeller", 268 | "content": "Success in business requires training and discipline and hard work. But if you're not frightened by these things, the opportunities are just as great today as they ever were." 269 | }, 270 | { 271 | "author": "Seneca the Younger", 272 | "content": "No man was ever wise by chance." 273 | }, 274 | { 275 | "author": "Pema Chödrön", 276 | "content": "Nothing ever goes away until it has taught us what we need to know." 277 | }, 278 | { 279 | "author": "Confucius", 280 | "content": "The more man meditates upon good thoughts, the better will be his world and the world at large." 281 | }, 282 | { 283 | "author": "Iris Murdoch", 284 | "content": "We can only learn to love by loving." 285 | }, 286 | { 287 | "author": "Oscar Wilde", 288 | "content": "The only thing to do with good advice is to pass it on. It is never of any use to oneself." 289 | }, 290 | { 291 | "author": "John McCain", 292 | "content": "Our shared values define us more than our differences. And acknowledging those shared values can see us through our challenges today if we have the wisdom to trust in them again." 293 | }, 294 | { 295 | "author": "Wayne Dyer", 296 | "content": "If you change the way you look at things, the things you look at change." 297 | }, 298 | { 299 | "author": "Laurence J. Peter", 300 | "content": "There are two kinds of failures: those who thought and never did, and those who did and never thought." 301 | }, 302 | { 303 | "author": "Lewis Carroll", 304 | "content": "If you don't know where you are going, any road will get you there." 305 | }, 306 | { 307 | "author": "Ralph Waldo Emerson", 308 | "content": "Happiness is a perfume you cannot pour on others without getting a few drops on yourself." 309 | }, 310 | { 311 | "author": "Johann Wolfgang von Goethe", 312 | "content": "Wisdom is found only in truth." 313 | }, 314 | { 315 | "author": "Thomas Aquinas", 316 | "content": "There is nothing on this earth more to be prized than true friendship." 317 | }, 318 | { 319 | "author": "Mark Twain", 320 | "content": "To get the full value of joy you must have someone to divide it with." 321 | }, 322 | { 323 | "author": "Walter Benjamin", 324 | "content": "The art of storytelling is reaching its end because the epic side of truth, wisdom, is dying out." 325 | }, 326 | { 327 | "author": "Ralph Waldo Emerson", 328 | "content": "Our distrust is very expensive." 329 | }, 330 | { 331 | "author": "Winifred Holtby", 332 | "content": "The things that one most wants to do are the things that are probably most worth doing." 333 | }, 334 | { 335 | "author": "Jim Rohn", 336 | "content": "Learning is the beginning of wealth. Learning is the beginning of health. Learning is the beginning of spirituality. Searching and learning is where the miracle process all begins." 337 | }, 338 | { 339 | "author": "Epictetus", 340 | "content": "First say to yourself what you would be; and then do what you have to do." 341 | }, 342 | { 343 | "author": "Honoré de Balzac", 344 | "content": "When you doubt your power, you give power to your doubt." 345 | }, 346 | { 347 | "author": "Hannah More", 348 | "content": "It is not so important to know everything as to appreciate what we learn." 349 | }, 350 | { 351 | "author": "Helen Keller", 352 | "content": "Keep yourself to the sunshine and you cannot see the shadow." 353 | }, 354 | { 355 | "author": "Edmund Burke", 356 | "content": "Nobody made a greater mistake than he who did nothing because he could do only a little." 357 | }, 358 | { 359 | "author": "James Oppenheim", 360 | "content": "The foolish man seeks happiness in the distance, the wise grows it under his feet." 361 | }, 362 | { 363 | "author": "Henry Ward Beecher", 364 | "content": "There is no friendship, no love, like that of the parent for the child." 365 | }, 366 | { 367 | "author": "Horace", 368 | "content": "Begin, be bold, and venture to be wise." 369 | }, 370 | { 371 | "author": "François de La Rochefoucauld", 372 | "content": "A true friend is the most precious of all possessions and the one we take the least thought about acquiring." 373 | }, 374 | { 375 | "author": "Mahatma Gandhi", 376 | "content": "Our greatness lies not so much in being able to remake the world as being able to remake ourselves." 377 | }, 378 | { 379 | "author": "Francis Bacon", 380 | "content": "It is impossible to love and to be wise." 381 | }, 382 | { 383 | "author": "Giotto", 384 | "content": "The sincere friends of this world are as ship lights in the stormiest of nights." 385 | }, 386 | { 387 | "author": "Henry Wadsworth Longfellow", 388 | "content": "He that respects himself is safe from others; he wears a coat of mail that none can pierce." 389 | }, 390 | { 391 | "author": "Richard Bach", 392 | "content": "To bring anything into your life, imagine that it's already there." 393 | }, 394 | { 395 | "author": "Buddha", 396 | "content": "The thought manifests as the word. The word manifests as the deed. The deed develops into habit. And the habit hardens into character." 397 | }, 398 | { 399 | "author": "Vernor Vinge", 400 | "content": "So much technology, so little talent." 401 | }, 402 | { 403 | "author": "Ralph Waldo Emerson", 404 | "content": "Do not follow where the path may lead. Go, instead, where there is no path and leave a trail." 405 | }, 406 | { 407 | "author": "Baltasar Gracián", 408 | "content": "True friendship multiplies the good in life and divides its evils. Strive to have friends, for life without friends is like life on a desert island... to find one real friend in a lifetime is good fortune; to keep him is a blessing." 409 | }, 410 | { 411 | "author": "Phyllis Grissim-Theroux", 412 | "content": "Mistakes are the usual bridge between inexperience and wisdom." 413 | }, 414 | { 415 | "author": "John F. Kennedy", 416 | "content": "Those who dare to fail miserably can achieve greatly." 417 | }, 418 | { 419 | "author": "M. Scott Peck", 420 | "content": "Until you value yourself, you won't value your time. Until you value your time, you won't do anything with it." 421 | }, 422 | { 423 | "author": "William Blake", 424 | "content": "The road of excess leads to the palace of wisdom." 425 | }, 426 | { 427 | "author": "Dalai Lama", 428 | "content": "When we feel love and kindness toward others, it not only makes others feel loved and cared for, but it helps us also to develop inner happiness and peace." 429 | }, 430 | { 431 | "author": "Nelson Mandela", 432 | "content": "And as we let our own light shine, we unconsciously give other people permission to do the same." 433 | }, 434 | { 435 | "author": "Aesop", 436 | "content": "No act of kindness, no matter how small, is ever wasted." 437 | }, 438 | { 439 | "author": "Ralph Waldo Emerson", 440 | "content": "We aim above the mark to hit the mark." 441 | }, 442 | { 443 | "author": "Albert Schweitzer", 444 | "content": "Do something wonderful, people may imitate it." 445 | }, 446 | { 447 | "author": "Chanakya", 448 | "content": "A man is great by deeds, not by birth." 449 | }, 450 | { 451 | "author": "Albert Einstein", 452 | "content": "It has become appallingly obvious that our technology has exceeded our humanity." 453 | }, 454 | { 455 | "author": "Ralph Waldo Emerson", 456 | "content": "Most of the shadows of life are caused by standing in our own sunshine." 457 | }, 458 | { 459 | "author": "Margaret Laurence", 460 | "content": "Know that although in the eternal scheme of things you are small, you are also unique and irreplaceable, as are all your fellow humans everywhere in the world." 461 | }, 462 | { 463 | "author": "Audre Lorde", 464 | "content": "When I dare to be powerful, to use my strength in the service of my vision, then it becomes less and less important whether I am afraid." 465 | }, 466 | { 467 | "author": "Voltaire", 468 | "content": "Think for yourselves and let others enjoy the privilege to do so too." 469 | }, 470 | { 471 | "author": "Richard Bach", 472 | "content": "Every gift from a friend is a wish for your happiness." 473 | }, 474 | { 475 | "author": "Denis Waitley", 476 | "content": "There are two primary choices in life: to accept conditions as they exist, or accept responsibility for changing them." 477 | }, 478 | { 479 | "author": "Franz Grillparzer", 480 | "content": "Genius unrefined resembles a flash of lightning, but wisdom is like the sun." 481 | }, 482 | { 483 | "author": "Robert F. Kennedy", 484 | "content": "Tragedy is a tool for the living to gain wisdom, not a guide by which to live." 485 | }, 486 | { 487 | "author": "William C. Menninger", 488 | "content": "He who is taught to live upon little owes more to his father's wisdom than he who has a great deal left him does to his father's care." 489 | }, 490 | { 491 | "author": "George S. Patton", 492 | "content": "Accept challenges, so that you may feel the exhilaration of victory." 493 | }, 494 | { 495 | "author": "Lord Byron", 496 | "content": "Friendship is Love without his wings!" 497 | }, 498 | { 499 | "author": "Oscar Wilde", 500 | "content": "True friends stab you in the front." 501 | }, 502 | { 503 | "author": "Barbara Bush", 504 | "content": "Value your friendship. Value your relationships." 505 | }, 506 | { 507 | "author": "Brian Tracy", 508 | "content": "There is never enough time to do everything, but there is always enough time to do the most important thing." 509 | }, 510 | { 511 | "author": "Bernard Shaw", 512 | "content": "Life isn't about finding yourself. Life is about creating yourself." 513 | }, 514 | { 515 | "author": "Sam Rayburn", 516 | "content": "No one has a finer command of language than the person who keeps his mouth shut." 517 | }, 518 | { 519 | "author": "Kathleen Norris", 520 | "content": "All that is necessary is to accept the impossible, do without the indispensable, and bear the intolerable." 521 | }, 522 | { 523 | "author": "Laozi", 524 | "content": "He who knows, does not speak. He who speaks, does not know." 525 | }, 526 | { 527 | "author": "Albert Camus", 528 | "content": "In the depth of winter, I finally learned that there was within me an invincible summer." 529 | }, 530 | { 531 | "author": "Laurence J. Peter", 532 | "content": "You can always tell a real friend: when you've made a fool of yourself he doesn't feel you've done a permanent job." 533 | }, 534 | { 535 | "author": "Isocrates", 536 | "content": "True knowledge exists in knowing that you know nothing." 537 | }, 538 | { 539 | "author": "Buddha", 540 | "content": "To keep the body in good health is a duty... otherwise we shall not be able to keep our mind strong and clear." 541 | }, 542 | { 543 | "author": "Barbara De Angelis", 544 | "content": "We need to find the courage to say NO to the things and people that are not serving us if we want to rediscover ourselves and live our lives with authenticity." 545 | }, 546 | { 547 | "author": "Laozi", 548 | "content": "Be the chief but never the lord." 549 | }, 550 | { 551 | "author": "William Shakespeare", 552 | "content": "Love all, trust a few, do wrong to none." 553 | }, 554 | { 555 | "author": "Confucius", 556 | "content": "The more you know yourself, the more you forgive yourself." 557 | }, 558 | { 559 | "author": "Alexander Pope", 560 | "content": "Do good by stealth, and blush to find it fame." 561 | }, 562 | { 563 | "author": "Ralph Waldo Emerson", 564 | "content": "Build a better mousetrap and the world will beat a path to your door." 565 | }, 566 | { 567 | "author": "Ralph Waldo Emerson", 568 | "content": "Make the most of yourself, for that is all there is of you." 569 | }, 570 | { 571 | "author": "Ansel Adams", 572 | "content": "In wisdom gathered over time I have found that every experience is a form of exploration." 573 | }, 574 | { 575 | "author": "Ovid", 576 | "content": "Chance is always powerful. Let your hook be always cast; in the pool where you least expect it, there will be a fish." 577 | }, 578 | { 579 | "author": "Simone Weil", 580 | "content": "I can, therefore I am." 581 | }, 582 | { 583 | "author": "Albert Einstein", 584 | "content": "The only real valuable thing is intuition." 585 | }, 586 | { 587 | "author": "Virginia Woolf", 588 | "content": "Some people go to priests; others to poetry; I to my friends." 589 | }, 590 | { 591 | "author": "Simone Weil", 592 | "content": "Liberty, taking the word in its concrete sense, consists in the ability to choose." 593 | }, 594 | { 595 | "author": "Thích Nhất Hạnh", 596 | "content": "If we are not fully ourselves, truly in the present moment, we miss everything." 597 | }, 598 | { 599 | "author": "Manuel Puig", 600 | "content": "I allow my intuition to lead my path." 601 | }, 602 | { 603 | "author": "Harriet Woods", 604 | "content": "You can stand tall without standing on someone. You can be a victor without having victims." 605 | }, 606 | { 607 | "author": "Ernie Banks", 608 | "content": "Loyalty and friendship, which is to me the same, created all the wealth that I've ever thought I'd have." 609 | }, 610 | { 611 | "author": "William Wordsworth", 612 | "content": "Wisdom is oftentimes nearer when we stoop than when we soar." 613 | }, 614 | { 615 | "author": "Mark Twain", 616 | "content": "Whoever is happy will make others happy, too." 617 | }, 618 | { 619 | "author": "Jean de La Bruyère", 620 | "content": "Two persons cannot long be friends if they cannot forgive each other's little failings." 621 | }, 622 | { 623 | "author": "Sun Tzu", 624 | "content": "The supreme art of war is to subdue the enemy without fighting." 625 | }, 626 | { 627 | "author": "Hal Abelson", 628 | "content": "Programs must be written for people to read, and only incidentally for machines to execute." 629 | }, 630 | { 631 | "author": "Plato", 632 | "content": "Wise men talk because they have something to say; fools, because they have to say something." 633 | }, 634 | { 635 | "author": "Dalai Lama", 636 | "content": "I believe that we are fundamentally the same and have the same basic potential." 637 | }, 638 | { 639 | "author": "Napoleon Hill", 640 | "content": "Cherish your visions and your dreams as they are the children of your soul; the blueprints of your ultimate achievements." 641 | }, 642 | { 643 | "author": "Carl Jung", 644 | "content": "Everything that irritates us about others can lead us to a better understanding of ourselves." 645 | }, 646 | { 647 | "author": "Napoleon", 648 | "content": "The truest wisdom is a resolute determination." 649 | }, 650 | { 651 | "author": "Albert Camus", 652 | "content": "All men have a sweetness in their life. That is what helps them go on. It is towards that they turn when they feel too worn out." 653 | }, 654 | { 655 | "author": "Søren Kierkegaard", 656 | "content": "To dare is to lose ones footing momentarily. To not dare is to lose oneself." 657 | }, 658 | { 659 | "author": "John Dewey", 660 | "content": "Arriving at one point is the starting point to another." 661 | }, 662 | { 663 | "author": "Carl Jung", 664 | "content": "The least of things with a meaning is worth more in life than the greatest of things without it." 665 | }, 666 | { 667 | "author": "Paul Cézanne", 668 | "content": "The awareness of our own strength makes us modest." 669 | }, 670 | { 671 | "author": "Blaise Pascal", 672 | "content": "Kind words do not cost much. Yet they accomplish much." 673 | }, 674 | { 675 | "author": "Bruce Lee", 676 | "content": "To hell with circumstances; I create opportunities." 677 | }, 678 | { 679 | "author": "Washington Irving", 680 | "content": "Love is never lost. If not reciprocated, it will flow back and soften and purify the heart." 681 | }, 682 | { 683 | "author": "Denis Waitley", 684 | "content": "You must welcome change as the rule but not as your ruler." 685 | }, 686 | { 687 | "author": "Karl Menninger", 688 | "content": "Love cures people - both the ones who give it and the ones who receive it." 689 | }, 690 | { 691 | "author": "Napoleon Hill", 692 | "content": "Opportunity often comes disguised in the form of misfortune, or temporary defeat." 693 | }, 694 | { 695 | "author": "Leo Buscaglia", 696 | "content": "Never idealize others. They will never live up to your expectations." 697 | }, 698 | { 699 | "author": "Dalai Lama", 700 | "content": "To be aware of a single shortcoming in oneself is more useful than to be aware of a thousand in someone else." 701 | }, 702 | { 703 | "author": "Albert Einstein", 704 | "content": "Anyone who doesn't take truth seriously in small matters cannot be trusted in large ones either." 705 | }, 706 | { 707 | "author": "Marcus Aurelius", 708 | "content": "Accept the things to which fate binds you, and love the people with whom fate brings you together, but do so with all your heart." 709 | }, 710 | { 711 | "author": "Thomas Jefferson", 712 | "content": "Do you want to know who you are? Don't ask. Act! Action will delineate and define you." 713 | } 714 | ] --------------------------------------------------------------------------------